package org.larkdoc.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.larkdoc.model.entity.DocRelProject;

/**
 * 文档与项目关系Mapper接口类
 * 
 * @author  zhangpeijun[zhangpeijun1024@qq.com]
 * @version  [v1.0.1, 2017年10月17日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
@Mapper
public interface DocRelProjectMapper {
    /**
     * 根据ID删除数据
     * @param id
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:02:03
     */
    int deleteByPrimaryKey(Integer id);
    
    /**
     * 新增数据
     * @param record
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:06:23
     */
    int insert(DocRelProject record);
    
    /**
     * 新增记录，只记录对象非空属性
     * @param record
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:10:30
     */
    int insertSelective(DocRelProject record);
    
    /**
     * 根据ID查询数据
     * @param id
     * @return
     * 
     * @returns DocRelProject
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:13:19
     */
    DocRelProject selectByPrimaryKey(Integer id);
    
    /**
     * 根据ID更新记录，只更新参数中非空的属性
     * @param record
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:15:51
     */
    int updateByPrimaryKeySelective(DocRelProject record);
    
    /**
     * 根据ID更新记录
     * @param record
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日下午12:18:29
     */
    int updateByPrimaryKey(DocRelProject record);
    
    /*
     *  自定义SQL
     */
    
    /**
     * 根据项目ID删除数据
     * @param projectId
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日上午10:56:10
     */
    int deleteByProjectId(@Param("projectId") Integer projectId);
    
    /**
     * 根据文档ID删除数据
     * @param docId
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日上午10:58:48
     */
    int deleteByDocId(@Param("docId") Integer docId);
    
    /**
     * 批量新增
     * @param records
     * @return
     * 
     * @returns int
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日上午10:58:50
     */
    int insertBatch(List<DocRelProject> records);
    
    /**
     * 根据文档ID集查询数据
     * @param ids
     * @return
     * 
     * @returns List<DocRelProject>
     * @see [类、类#方法、类#成员]
     * @author  zhangpeijun[zhangpeijun1024@qq.com]<br/>
     *          2017年10月17日上午10:58:54
     */
    List<DocRelProject> selectByDocIds(@Param("ids") List<Integer> ids);
}